package com.allprs.common.utils;

import java.util.Map;

public class MapUtils {
    /**
     * 获取map的value值，如果为空则取默认值
     * @param map
     * @param key
     * @param defaultValues
     * @return
     */
    public static String getString(Map map,String key,String defaultValues) {
        if(map.get(key)!=null) {
            return map.get(key).toString();
        }else {
            return defaultValues;
        }
    }

    /**
     * 获取map的value值，如果为空则返回空字符串
     * @param map
     * @param key
     * @return
     */
    public static String getString(Map map,String key) {
        return getString(map, key, "");
    }



    /**
     * 获取map的value，转为int类型。默认为0
     * @param map
     * @param key
     * @return
     */
    public static int getInteger(Map map,String key) {
        return Integer.parseInt(getString(map, key,"0"));
    }

    /**
     * 获取map的value，转为int类型。为空是返回自定义默认值
     * @param map
     * @param key
     * @return
     */
    public static int getInteger(Map map,String key,int defaultValues) {
        return Integer.parseInt(getString(map, key,defaultValues+""));
    }

    /**
     * 获取map的value，转为double类型。默认为0.0
     * @param map
     * @param key
     * @return
     */
    public static double getDouble(Map map,String key) {
        return Double.parseDouble(getString(map, key,"0"));
    }

    /**
     * 获取map的value，转为double类型。为空时返回自定义默认值
     * @param map
     * @param key
     * @return
     */
    public static double getDouble(Map map,String key,double defaultValues) {
        return Double.parseDouble(getString(map, key,defaultValues+""));
    }


    /**
     * 获取map的value，转为boolean类型。默认为false
     * @param map
     * @param key
     * @return
     */
    public static Boolean getBoolean(Map map,String key) {
        return Boolean.parseBoolean(getString(map, key,"false"));
    }


    /**
     * 获取map的value，转为boolean类型。为空时返回自定义默认值
     * @param map
     * @param key
     * @return
     */
    public static Boolean getBoolean(Map map,String key,boolean defaultValues) {
        return Boolean.parseBoolean(getString(map, key,defaultValues+""));
    }

    /**
     * 获取map的value，转为float类型。默认为0.0
     * @param map
     * @param key
     * @return
     */
    public static float getFloat(Map map,String key) {
        return Float.parseFloat(getString(map, key,"0"));
    }

    /**
     * 获取map的value，转为float类型。为空时返回自定义默认值
     * @param map
     * @param key
     * @return
     */
    public static float getFloat(Map map, String key, float defaultValues) {
        return Float.parseFloat(getString(map, key,defaultValues+""));
    }


    /**
     * 获取map的value，转为float类型。为空时返回自定义默认值
     * @param map
     * @param key
     * @return
     */
    public static Object getObject(Map map, String key) {
        if(map.get(key)!=null) {
            return map.get(key);
        }else {
            return null;
        }
    }

}
